package com.autumn.zero.workflow.listeners;

import com.autumn.zero.workflow.entitys.AbstractWorkflowProcess;
import com.autumn.zero.workflow.entitys.WorkflowUserTaskComplete;
import com.autumn.zero.workflow.entitys.WorkflowUserTaskWait;

/**
 * 流程监听通知
 * 
 * @author 杨昌国 2019-01-29 14:41:50
 */
public interface IProcessListenerNotify {

	/**
	 * 流程启动
	 * 
	 * @param workflowProcess 流程信息
	 */
	void startProcess(AbstractWorkflowProcess workflowProcess);

	/**
	 * 流程结束
	 * 
	 * @param workflowProcess 流程信息
	 */
	void endProcess(AbstractWorkflowProcess workflowProcess);

	/**
	 * 产生用户任务待办
	 * 
	 * @param workflowProcess      工作流进程
	 * @param workflowUserTaskWait 待
	 */
	void userTaskWait(AbstractWorkflowProcess workflowProcess, WorkflowUserTaskWait workflowUserTaskWait);

	/**
	 * 用户任务处理完成
	 * 
	 * @param workflowProcess          工作流进程
	 * @param workflowUserTaskComplete 完成事项
	 */
	void userTaskComplete(AbstractWorkflowProcess workflowProcess, WorkflowUserTaskComplete workflowUserTaskComplete);
}
